﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using MasoQna.Models;

namespace MasoQna.Infrastructure
{
    public class DropCreateDbWithSeedDataIfModelChanges 
        : DropCreateDatabaseIfModelChanges<MqDbContext>
    {
        protected override void Seed(MqDbContext context)
        {
            // User
            User[] users = new User[]{
                new User() { Id = 1, Name = "주의사신", Reputation = 21375 },
                new User() { Id = 2, Name = "Dr.D", Reputation = 51 },
                new User() { Id = 3, Name = "파워개발자", Reputation = 3196 },
                new User() { Id= 4, Name="미상", Reputation = 1111122222 },
            };
            context.Users.Add(users[0]);
            context.Users.Add(users[1]);
            context.Users.Add(users[2]);
            context.Users.Add(users[3]);

            Answer a1 = new Answer()
            {
                Id = 4,
                Content = "분산형이 더 낫습니다. 이유는 다음과 같습니다. 더 이상의 자세한 설명은 생략한다.",
                Writer = users[0],
                Time = new DateTime(2012, 4, 30, 22, 10, 1),
                UpVoteCount = 15,
                DownVoteCount = 0,
                QuestionId = 1,
            };

            Answer a2 = new Answer()
            {
                Id = 5,
                Content = "그냥 쓰던 것 쓰시기 바랍니다. 새로운 것을 배우는 것은 괴로운 일입니다.",
                Writer = users[2],
                Time = new DateTime(2012, 5, 2, 22, 10, 1),
                UpVoteCount = 3,
                DownVoteCount = -2,
                QuestionId = 1,
            };

            Answer a3 = new Answer()
            {
                Id = 6,
                Content = "edit@imaso.co.kr로 글 보내세요.",
                Writer = users[2],
                Time = new DateTime(2012, 5, 2, 22, 10, 1),
                UpVoteCount = 3,
                DownVoteCount = -2,
                QuestionId = 3,
            };

            // Writing
            context.Writings.Add(new Question()
            {
                Id = 1,
                Title = "분산형 버전 관리 시스템이 중앙 집중형보다 좋은가요?",
                Content = "선배가 분산형 버전 관리 시스템이 중앙 집중형보다 좋다고 자꾸 이야기합니다. 진짜 그런가요?",
                ViewCount = 132,
                Writer = users[1],
                DownVoteCount = 1,
                UpVoteCount = 5,
                Time = new DateTime(2012, 4, 25, 8, 25, 41),
                SelectedAnswerId = 3,
                Answers = new List<Answer>(){a1, a2},
            });

            context.Writings.Add(new Question()
            {
                Id = 2,
                Title = "MapRoute에서 namespace 변수의 역할이 뭔가요?",
                Content = "MapRoute 함수의 원형을 읽어 보고 있는데 namespace라는 이름의 변수가 보였습니다. 사용해 봐도 별 내용이 없는 것 같은데 정확히 역할이 뭔가요?",
                ViewCount = 132,
                Writer = users[2],
                DownVoteCount = 1,
                UpVoteCount = 2,
                Time = new DateTime(2012, 4, 25, 8, 31, 11),
                Answers = new List<Answer>(),
            });

            context.Writings.Add(new Question()
            {
                Id = 3,
                Title = "마소 기고는 어떻게 하나요?",
                Content = "더 이상의 자세한 질문은 생략한다?",
                ViewCount = 132,
                Writer = users[0],
                DownVoteCount = 1,
                UpVoteCount = 2,
                Time = new DateTime(2012, 6, 25, 8, 31, 11),
                Answers = new List<Answer>(){a3},
            });

            context.Writings.Add(a1);
            context.Writings.Add(a2);
            context.Writings.Add(a3);
        }
    }
}